- Community ecology's gateway to ecological networks
Updated “07 May 2016”
Examples:
Nestedness: Packing Communities
Nestedness: Packing Communities
Measuring Nestedness: Many Metrics
1. Ordering
2. Isocline
3. Deviations
M <- c(rep(1,10),
c(rep(1,4),rep(0,6)),
c(rep(1,3),rep(0,7)),
c(rep(1,2),rep(0,8)),
rep(c(rep(1,1),rep(0,9)),6)
)
M <- matrix(M,nrow=10)
rownames(M) <- paste('P',1:10,sep='')
colnames(M) <- paste('A',1:10,sep='')
M
## A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 ## P1 1 1 1 1 1 1 1 1 1 1 ## P2 1 1 1 1 0 0 0 0 0 0 ## P3 1 1 1 0 0 0 0 0 0 0 ## P4 1 1 0 0 0 0 0 0 0 0 ## P5 1 0 0 0 0 0 0 0 0 0 ## P6 1 0 0 0 0 0 0 0 0 0 ## P7 1 0 0 0 0 0 0 0 0 0 ## P8 1 0 0 0 0 0 0 0 0 0 ## P9 1 0 0 0 0 0 0 0 0 0 ## P10 1 0 0 0 0 0 0 0 0 0
M[sample(1:10,10),sample(1:10,10)]
## A7 A9 A6 A3 A2 A8 A1 A4 A10 A5 ## P5 0 0 0 0 0 0 1 0 0 0 ## P10 0 0 0 0 0 0 1 0 0 0 ## P9 0 0 0 0 0 0 1 0 0 0 ## P3 0 0 0 1 1 0 1 0 0 0 ## P1 1 1 1 1 1 1 1 1 1 1 ## P4 0 0 0 0 1 0 1 0 0 0 ## P8 0 0 0 0 0 0 1 0 0 0 ## P6 0 0 0 0 0 0 1 0 0 0 ## P2 0 0 0 1 1 0 1 1 0 0 ## P7 0 0 0 0 0 0 1 0 0 0
M[sample(1:10,10),sample(1:10,10)]
## A5 A9 A3 A7 A4 A10 A8 A2 A6 A1 ## P3 0 0 1 0 0 0 0 1 0 1 ## P1 1 1 1 1 1 1 1 1 1 1 ## P9 0 0 0 0 0 0 0 0 0 1 ## P7 0 0 0 0 0 0 0 0 0 1 ## P4 0 0 0 0 0 0 0 1 0 1 ## P5 0 0 0 0 0 0 0 0 0 1 ## P8 0 0 0 0 0 0 0 0 0 1 ## P2 0 0 1 0 1 0 0 1 0 1 ## P10 0 0 0 0 0 0 0 0 0 1 ## P6 0 0 0 0 0 0 0 0 0 1
M[sample(1:10,10),sample(1:10,10)]
## A2 A5 A4 A8 A3 A1 A10 A6 A7 A9 ## P9 0 0 0 0 0 1 0 0 0 0 ## P3 1 0 0 0 1 1 0 0 0 0 ## P1 1 1 1 1 1 1 1 1 1 1 ## P6 0 0 0 0 0 1 0 0 0 0 ## P2 1 0 1 0 1 1 0 0 0 0 ## P4 1 0 0 0 0 1 0 0 0 0 ## P10 0 0 0 0 0 1 0 0 0 0 ## P8 0 0 0 0 0 1 0 0 0 0 ## P5 0 0 0 0 0 1 0 0 0 0 ## P7 0 0 0 0 0 1 0 0 0 0
obs <- 45 null <- rnorm(1000,65,9) hist(null,main='') abline(v=obs)
z.score <- (obs - mean(null)) / sd(null) p.value <- length(null[null <= obs])/length(null) z.score
## [1] -2.172795
p.value
## [1] 0.016
library(bipartite) data(Safariland) Safariland
## Policana albopilosa Bombus dahlbomii ## Aristotelia chilensis 673 0 ## Alstroemeria aurea 0 154 ## Schinus patagonicus 0 0 ## Berberis darwinii 0 67 ## Rosa eglanteria 0 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 0 0 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 0 0 ## Ruizantheda mutabilis Trichophthalma amoena ## Aristotelia chilensis 110 0 ## Alstroemeria aurea 0 0 ## Schinus patagonicus 0 0 ## Berberis darwinii 0 0 ## Rosa eglanteria 6 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 0 2 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 0 0 ## Syrphus octomaculatus Manuelia gayi ## Aristotelia chilensis 0 0 ## Alstroemeria aurea 5 7 ## Schinus patagonicus 0 0 ## Berberis darwinii 5 0 ## Rosa eglanteria 4 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 0 0 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 0 0 ## Allograpta.Toxomerus Trichophthalma jaffueli ## Aristotelia chilensis 0 0 ## Alstroemeria aurea 1 3 ## Schinus patagonicus 0 0 ## Berberis darwinii 0 0 ## Rosa eglanteria 2 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 3 0 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 1 0 ## Phthiria Platycheirus1 Sapromyza.Minettia ## Aristotelia chilensis 0 4 0 ## Alstroemeria aurea 8 1 1 ## Schinus patagonicus 0 0 0 ## Berberis darwinii 0 0 0 ## Rosa eglanteria 0 0 0 ## Cynanchum diemii 0 0 0 ## Ribes magellanicum 0 0 0 ## Mutisia decurrens 1 0 0 ## Calceolaria crenatiflora 0 0 0 ## Formicidae3 Nitidulidae Staphilinidae ## Aristotelia chilensis 0 0 0 ## Alstroemeria aurea 0 0 4 ## Schinus patagonicus 0 0 0 ## Berberis darwinii 0 0 0 ## Rosa eglanteria 0 0 3 ## Cynanchum diemii 8 1 0 ## Ribes magellanicum 0 0 0 ## Mutisia decurrens 0 0 0 ## Calceolaria crenatiflora 0 0 0 ## Ichneumonidae4 Braconidae3 Chalepogenus caeruleus ## Aristotelia chilensis 1 0 0 ## Alstroemeria aurea 0 0 0 ## Schinus patagonicus 15 0 0 ## Berberis darwinii 0 0 0 ## Rosa eglanteria 0 0 0 ## Cynanchum diemii 0 2 0 ## Ribes magellanicum 0 0 0 ## Mutisia decurrens 0 0 0 ## Calceolaria crenatiflora 0 0 3 ## Vespula germanica Torymidae2 Phthiria1 ## Aristotelia chilensis 0 0 0 ## Alstroemeria aurea 4 0 1 ## Schinus patagonicus 0 0 0 ## Berberis darwinii 0 0 0 ## Rosa eglanteria 0 0 0 ## Cynanchum diemii 0 9 0 ## Ribes magellanicum 0 0 0 ## Mutisia decurrens 0 0 0 ## Calceolaria crenatiflora 0 0 0 ## Svastrides melanura Sphecidae Thomisidae ## Aristotelia chilensis 0 0 0 ## Alstroemeria aurea 6 1 1 ## Schinus patagonicus 0 0 0 ## Berberis darwinii 0 0 0 ## Rosa eglanteria 0 0 0 ## Cynanchum diemii 0 0 0 ## Ribes magellanicum 0 0 0 ## Mutisia decurrens 0 0 0 ## Calceolaria crenatiflora 0 0 0 ## Corynura prothysteres Ichneumonidae2 ## Aristotelia chilensis 1 0 ## Alstroemeria aurea 3 4 ## Schinus patagonicus 0 0 ## Berberis darwinii 0 0 ## Rosa eglanteria 0 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 0 0 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 0 0 ## Ruizantheda proxima Braconidae2 ## Aristotelia chilensis 0 1 ## Alstroemeria aurea 4 0 ## Schinus patagonicus 0 0 ## Berberis darwinii 0 0 ## Rosa eglanteria 0 0 ## Cynanchum diemii 0 0 ## Ribes magellanicum 0 0 ## Mutisia decurrens 0 0 ## Calceolaria crenatiflora 0 0
plotweb(Safariland)
plotweb(Safariland,text.rot=90)
nested(Safariland)
## binmatnest2.temperature ## 19.79533
nested(Safariland,method='ALL')
## binmatnest2.temperature binmatnest discrepancy2.discrepancy ## 19.8571171 5.7626076 15.0000000 ## discrepancy C.score checker ## 21.0000000 0.5616097 1.0227920 ## NODF2 NODF weighted NODF ## 24.5478036 18.0878553 11.6063738 ## wine ## 0.4001867
safari.nest <- nestedness(Safariland) names(safari.nest)
## [1] "mat" "n.rows" "n.cols" ## [4] "temperature" "n.nullmodels" "population.size" ## [7] "n.individuals" "binmatnestout" "n.generations" ## [10] "nullmodels" "p.null1" "mean.temp.null1" ## [13] "var.temp.null1" "p.null2" "mean.temp.null2" ## [16] "var.temp.null2" "p.null3" "mean.temp.null3" ## [19] "var.temp.null3" "pack.order.col" "pack.order.row" ## [22] "packed.matrix"
unlist(safari.nest[c('temperature')])
## temperature ## 5.762608
unlist(safari.nest[c('p.null1','p.null2','p.null3')])
## p.null1 p.null2 p.null3 ## 0 0 0
unlist(safari.nest[c('mean.temp.null1','mean.temp.null2','mean.temp.null3')])
## mean.temp.null1 mean.temp.null2 mean.temp.null3 ## 28.14982 27.33150 18.72031
unlist(safari.nest[c('var.temp.null1','var.temp.null2','var.temp.null3')])
## var.temp.null1 var.temp.null2 var.temp.null3 ## 27.66088 33.82524 36.37121
Modularity: Eggs in Multiple Baskets
Nestedness Revisited
Nestedness Revisited
Modularity: Eggs in Multiple Baskets
Modularity: Eggs in Multiple Baskets
safari.mods <- computeModules(Safariland)
plotModuleWeb(safari.mods)
null.nets <- lapply(1:5,commsimulator,x=Safariland,method='r1') null.mods <- lapply(null.nets,computeModules) null.stats <- lapply(null.mods,function(x) slot(x,'likelihood')) null.stats <- unlist(null.stats)
obs.mods <- slot(safari.mods,'likelihood') null.mu <- mean(null.stats) null.sd <- sd(null.stats) null.z <- (obs.mods - null.mu) / null.sd null.p <- length(null.stats[null.stats <= obs.mods])/length(null.stats) null.z
## [1] -1.716951
null.p
## [1] 0
Nested and Modules